package com.pokermind.model.dto;

import lombok.Data;
import lombok.Builder;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;

/**
 * 德州扑克AI分析响应 - V4.0增强版
 * 
 * 输出格式：
 * {
 *   "action": "raise",        // fold | check | call | raise (移除bet)
 *   "size": 600,              // 具体金额
 *   "reasons": "核心理由",     // 通俗易懂的理由
 *   "hand_strength": {        // 手牌强度评估
 *     "level": "strong",
 *     "description": "顶对+顶踢脚",
 *     "equity": 0.85,
 *     "logic": "当前2对手，你的顶对A踢脚K胜率85%，领先大部分中对和听牌"
 *   }
 * }
 *
 * @author PokerMind Team
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PokerAIResponse {

    /**
     * 推荐行动: fold | check | call | raise
     * 注意：不再返回"bet"，首次主动下注统一用"raise"表示
     */
    private String action;

    /**
     * 尺寸: 具体筹码金额（整数）
     */
    private String size;

    /**
     * 理由 (通俗易懂，30-50个汉字)
     */
    private String reasons;
    
    /**
     * 手牌强度评估
     */
    private HandStrength handStrength;
    
    /**
     * 手牌强度详细信息
     */
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class HandStrength {
        /**
         * 强度等级: very_strong | strong | medium | weak | very_weak
         */
        private String level;
        
        /**
         * 牌型描述: 如"两对(A和K)" "顶对+顶踢脚" "同花听牌"
         */
        private String description;
        
        /**
         * 当前胜率: 0-1之间的小数，如0.85表示85%
         */
        private Double equity;
        
        /**
         * 逻辑说明: 用具体数字解释为什么是这个强度
         * 如"当前2对手，你的两对A-K胜率94%，只输给三条/顺子/同花/葫芦"
         */
        private String logic;
    }
}